home *** CD-ROM | disk | FTP | other *** search
/ Developer Helper 1: Phil & Dave's Excellent CD / Excellent CD HFS.raw / Moof / Goodies / HyperCard Goodies / HyperCard Dev. ToolKit / XCMD.Sources / HyperXCmd.h < prev    next >
Text File  |  1987-08-06  |  5KB  |  151 lines

  1. /*
  2.     HyperXCmd.h  Definitions for calling all standard 
  3.     HyperCard callback routines from C.
  4.     ©Apple Computer, Inc. 1987
  5.     All Rights Reserved.
  6.  
  7.     See CFlash.C for an example of how to include this module in your 
  8.     C program.
  9. */
  10.  
  11.  
  12. typedef struct XCmdBlock {
  13.     short    paramCount;     
  14.     Handle  params[16];
  15.     Handle  returnValue;      
  16.     Boolean    passFlag; 
  17.       
  18.     void    (*entryPoint)();    /* to call back to HyperCard */
  19.     short    request;  
  20.     short    result;  
  21.     long    inArgs[8];
  22.     long    outArgs[4];
  23.    } XCmdBlock, *XCmdBlockPtr;
  24.    
  25. typedef struct Str31 {
  26.     char    guts[32];
  27.     } Str31, *Str31Ptr;
  28.  
  29.   /*result codes */
  30. #define    xresSucc         0
  31. #define    xresFail         1 
  32. #define    xresNotImp         2 
  33.   
  34.   /* request codes */
  35. #define    xreqSendCardMessage        1 
  36. #define    xreqEvalExpr            2 
  37. #define    xreqStringLength        3 
  38. #define    xreqStringMatch            4 
  39. #define xreqSendHCMessage         5
  40. #define    xreqZeroBytes             6 
  41. #define    xreqPasToZero            7 
  42. #define    xreqZeroToPas            8 
  43. #define    xreqStrToLong            9 
  44. #define    xreqStrToNum            10 
  45. #define    xreqStrToBool            11 
  46. #define    xreqStrToExt            12 
  47. #define    xreqLongToStr            13 
  48. #define    xreqNumToStr            14 
  49. #define    xreqNumToHex            15 
  50. #define    xreqBoolToStr            16 
  51. #define    xreqExtToStr            17 
  52. #define    xreqGetGlobal            18 
  53. #define    xreqSetGlobal            19 
  54. #define    xreqGetFieldByName        20 
  55. #define    xreqGetFieldByNum        21 
  56. #define    xreqGetFieldByID        22 
  57. #define    xreqSetFieldByName        23 
  58. #define    xreqSetFieldByNum        24 
  59. #define    xreqSetFieldByID        25 
  60. #define    xreqStringEqual           26 
  61. #define    xreqReturnToPas           27 
  62. #define    xreqScanToReturn          28 
  63. #define    xreqScanToZero            39   /* was suppose to be 29!  Oops! */
  64.  
  65.  
  66. /* Forward definitions of glue routines.  Main program 
  67.     must include XCmdGlue.inc.c.  See XCmdGlue.inc.c for 
  68.     documentation of each routine.  */
  69. typedef void (*MyProcPtr) ();
  70.  
  71. pascal void SendCardMessage(paramPtr,msg)
  72.     XCmdBlockPtr    paramPtr;    StringPtr    msg;    extern;
  73. pascal Handle EvalExpr(paramPtr,expr)
  74.     XCmdBlockPtr    paramPtr;    StringPtr    expr;    extern;
  75. pascal long StringLength(paramPtr,strPtr)
  76.     XCmdBlockPtr    paramPtr;    StringPtr    strPtr;    extern;
  77. pascal Ptr StringMatch(paramPtr,pattern,target)
  78.     XCmdBlockPtr    paramPtr;    StringPtr    pattern;
  79.     Ptr    target;    extern;
  80. pascal void SendHCMessage(paramPtr,msg)
  81.     XCmdBlockPtr    paramPtr;    StringPtr    msg;    extern;
  82. pascal void ZeroBytes(paramPtr,dstPtr,longCount)
  83.     XCmdBlockPtr    paramPtr;    Ptr    dstPtr;
  84.     long    longCount;    extern;
  85. pascal Handle PasToZero(paramPtr,pasStr)
  86.     XCmdBlockPtr    paramPtr;    StringPtr    pasStr;    extern;
  87. pascal void ZeroToPas(paramPtr,zeroStr,pasStr)
  88.     XCmdBlockPtr    paramPtr;    char    *zeroStr;
  89.     StringPtr    pasStr;    extern;
  90. pascal long StrToLong(paramPtr,strPtr)
  91.     XCmdBlockPtr    paramPtr;    Str31 *    strPtr;    extern;
  92. pascal long StrToNum(paramPtr,str)
  93.     XCmdBlockPtr    paramPtr;    Str31 *     str;    extern;
  94. pascal Boolean StrToBool(paramPtr,str)
  95.     XCmdBlockPtr    paramPtr;    Str31 *     str;    extern;
  96. pascal void StrToExt(paramPtr,str,myext)
  97.     XCmdBlockPtr    paramPtr;    Str31 *     str;
  98.     extended *    myext;    extern;
  99. pascal void LongToStr(paramPtr,posNum,mystr)
  100.     XCmdBlockPtr    paramPtr;    long     posNum;
  101.     Str31 *    mystr;    extern;
  102. pascal void NumToStr(paramPtr,num,mystr)
  103.     XCmdBlockPtr    paramPtr;    long     num;
  104.     Str31 *    mystr;    extern;
  105. pascal void NumToHex(paramPtr,num,nDigits,mystr)
  106.     XCmdBlockPtr    paramPtr;    long     num;
  107.     short    nDigits;            Str31 *    mystr;    extern;
  108. pascal void BoolToStr(paramPtr,bool,mystr)
  109.     XCmdBlockPtr    paramPtr;    Boolean    bool;
  110.     Str31 *    mystr;    extern;
  111. pascal void ExtToStr(paramPtr,myext,mystr)
  112.     XCmdBlockPtr    paramPtr;    extended *    myext;
  113.     Str31 *    mystr;    extern;
  114. pascal Handle GetGlobal(paramPtr,globName)
  115.     XCmdBlockPtr    paramPtr;    StringPtr    globName;    extern;
  116. pascal void SetGlobal(paramPtr,globName,globValue)
  117.     XCmdBlockPtr    paramPtr;    StringPtr    globName;
  118.     Handle    globValue;    extern;
  119. pascal Handle GetFieldByName(paramPtr,cardFieldFlag,fieldName)
  120.     XCmdBlockPtr    paramPtr;    Boolean    cardFieldFlag;
  121.     StringPtr    fieldName;    extern;
  122. pascal Handle GetFieldByNum(paramPtr,cardFieldFlag,fieldNum)
  123.     XCmdBlockPtr    paramPtr;    Boolean    cardFieldFlag;
  124.     short    fieldNum;    extern;
  125. pascal Handle GetFieldByID(paramPtr,cardFieldFlag,fieldID)
  126.     XCmdBlockPtr    paramPtr;    Boolean    cardFieldFlag;
  127.     short    fieldID;    extern;
  128. pascal void SetFieldByName(paramPtr,cardFieldFlag,fieldName,fieldVal)
  129.     XCmdBlockPtr    paramPtr;    Boolean    cardFieldFlag;
  130.     StringPtr    fieldName;    Handle    fieldVal;    extern;
  131. pascal void SetFieldByNum(paramPtr,cardFieldFlag,fieldNum,fieldVal)
  132.     XCmdBlockPtr    paramPtr;    Boolean    cardFieldFlag;
  133.     short    fieldNum;            Handle    fieldVal;    extern;
  134. pascal void SetFieldByID(paramPtr,cardFieldFlag,fieldID,fieldVal)
  135.     XCmdBlockPtr    paramPtr;    Boolean    cardFieldFlag;
  136.     short    fieldID;            Handle    fieldVal;    extern;
  137. pascal Boolean StringEqual(paramPtr,str1,str2)
  138.     XCmdBlockPtr    paramPtr;    Str31 *     str1;
  139.     Str31 *     str2;    extern;
  140. pascal void ReturnToPas(paramPtr,zeroStr,pasStr)
  141.     XCmdBlockPtr    paramPtr;    Ptr    zeroStr;
  142.     StringPtr    pasStr;    extern;
  143. pascal void ScanToReturn(paramPtr,scanHndl)
  144.     XCmdBlockPtr    paramPtr;    Ptr *    scanHndl;    extern;
  145. pascal void ScanToZero(paramPtr,scanHndl)
  146.     XCmdBlockPtr    paramPtr;    Ptr *    scanHndl;    extern;
  147.  
  148.  
  149.  
  150.  
  151.